home *** CD-ROM | disk | FTP | other *** search
-
-
-
- kkkkbbbbdddd((((7777)))) kkkkbbbbdddd((((7777))))
-
-
-
- NNNNAAAAMMMMEEEE
- _kkkk_bbbb_dddd - generalized string translation module
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The STREAMS module _kkkk_bbbb_dddd is a programmable string translation module. It
- can perform two types of operations on an input stream: the first type is
- simple byte-swapping via a lookup table, the second is string
- translation. It is useful for _c_o_d_e _s_e_t _c_o_n_v_e_r_s_i_o_n and _c_o_m_p_o_s_e-_k_e_y or
- _d_e_a_d-_k_e_y character production on terminals and production of overstriking
- sequences on printers. It may also be used for minor types of key-
- rebinding, expansion of abbreviations, and keyboard re-arrangement (an
- example of the latter would be swapping the positions of the YYYY and ZZZZ
- keys, required for German keyboards, or providing Dvorak keyboard
- emulation for QWERTY keyboards). The manual entry _kkkk_bbbb_dddd_cccc_oooo_mmmm_pppp(1M) discusses
- table construction, the input language, and contains sample uses. This
- document is intended mainly to aid administrators in configuring the
- module on a particular system; the user interface to the module is solely
- through the commands _kkkk_bbbb_dddd_llll_oooo_aaaa_dddd(1M) and _kkkk_bbbb_dddd_ssss_eeee_tttt(1).
-
- The _kkkk_bbbb_dddd module works by modifying an input stream according to
- instructions embodied in tables. It has no built in default tables.
- Some tables may be loaded when the system is first brought up by pushing
- the module and loading standard or often-used tables [see _kkkk_bbbb_dddd_llll_oooo_aaaa_dddd(1M)]
- which are retained in main-memory across invocations and made available
- to all users. These are called _p_u_b_l_i_c _t_a_b_l_e_s. Users may also load
- _p_r_i_v_a_t_e _t_a_b_l_e_s at any time-these do not remain resident.
-
- With the _kkkk_bbbb_dddd_ssss_eeee_tttt command, users may query the module for a list of
- available and attached tables, attach various tables, and set the
- optional per-user _h_o_t-_k_e_y, _h_o_t-_k_e_y _m_o_d_e, and _v_e_r_b_o_s_e _s_t_r_i_n_g for their
- particular invocation.
-
- When a user attaches more than one table, the user's hot-key may be used
- to cycle to the next table in the list. If only one table is specified,
- the hot-key may be used to toggle translation on and off. When multiple
- tables are in use, the hot-key may be used to cycle through the list of
- tables. [See _kkkk_bbbb_dddd_ssss_eeee_tttt(1) for a description of the available modes.]
-
- In its initial state, _kkkk_bbbb_dddd scans input for occurrences of bytes beginning
- a translation sequence. Upon receiving such a byte, it attempts to match
- subsequent bytes of the input to programmed sequences. Input is buffered
- beginning with the byte which caused the state change and is released if
- a match is not found. When a match fails, the first byte of the invalid
- sequence is sent upstream, the buffered input is shifted, and the scan
- begins again with the resulting input sequence. If the current table
- contains an error entry, its value (one or more bytes) is substituted for
- the offending input byte. When a sequence is found to be valid, the
- entire sequence is replaced with the _r_e_s_u_l_t _s_t_r_i_n_g specified for it.
-
- The _kkkk_bbbb_dddd module may be used in either the read or write directions, or
- both simultaneously. Maps and hot-keys may be specified independently
- for input and output.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- kkkkbbbbdddd((((7777)))) kkkkbbbbdddd((((7777))))
-
-
-
- The _kkkk_bbbb_dddd also supports the use of _e_x_t_e_r_n_a_l _k_e_r_n_e_l-_r_e_s_i_d_e_n_t _f_u_n_c_t_i_o_n_s as if
- they were tables; once declared and attached (via _kkkk_bbbb_dddd_llll_oooo_aaaa_dddd and _kkkk_bbbb_dddd_ssss_eeee_tttt
- respectively) they may be used as simple tables or members of composites.
- To accomplish this, _kkkk_bbbb_dddd understands the registration functions of the _aaaa_llll_pppp
- module and can access any function registered with that module. Further
- information on external functions and their definition is contained in
- _aaaa_llll_pppp(7). External functions are especially useful in supporting multibyte
- code set conversions that would be difficult or impossible with normal
- _kkkk_bbbb_dddd tables.
-
- LLLLiiiimmmmiiiittttaaaattttiiiioooonnnnssss
- It is not an error to attach multiple tables without defining a hot-key,
- but the tables will not all be accessible. It is recommended that the
- user's hot-key be set before loading and attaching tables to avoid
- unpleasant side effects when an unfamiliar arrangement is first loaded.
-
- Each user has a limitation on the amount of memory that may be used for
- private and attached tables. This ``quota'' is controlled by the _kkkk_bbbb_dddd______uuuu_mmmm_eeee_mmmm
- variable described below. When a user that is not the super-user
- attempts to load a table or create a _c_o_m_p_o_s_i_t_e _t_a_b_l_e, the quota is
- checked, and the load will fail if it would cause the quota to be
- exceeded. When a composite table is attached, the space for attachment
- (which requires more space than the composite table itself) is charged
- against this quota (attachment of simple tables is not charged against
- the quota). The quota is enforced only when loading new tables.
- Detaching temporarily from unneeded composite tables may reduce the
- current allocation enough to load a table that would otherwise fail due
- to quota enforcement. To minimize chances of failure while loading
- tables, it is advisable to load all required tables and make all required
- composite tables before attaching any of them.
-
- CCCCoooonnnnffffiiiigggguuuurrrraaaattttiiiioooonnnn PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss
- The master (or _ssss_pppp_aaaa_cccc_eeee_...._cccc) file contains some configurable parameters.
-
- _NNNN_KKKK_BBBB_DDDD_UUUU is the maximum number of tables that may be attached by a single
- user. The number should be large enough to cover uncommon cases, and
- must be at least 2. Default is 6.
-
- _ZZZZ_UUUU_MMMM_EEEE_MMMM, from which the variable _kkkk_bbbb_dddd______uuuu_mmmm_eeee_mmmm is assigned, is the maximum
- number of bytes that a user (other than the super user) may have
- allocated to private tables (that is, the quota). Default is 4096.
-
- _KKKK_BBBB_DDDD_TTTT_IIII_MMMM_EEEE is the default timer value for _t_i_m_e_o_u_t _m_o_d_e. It is the number of
- clock ticks allowed before timing out. The value of one clock tick
- depends on the hardware, but is usually 1/100 or 1/60 of a second. A
- timeout value of 20 is 1/5 second at 100Hz; with a 60Hz clock, a value of
- 12 produces a 1/5 second timeout. Values from 5 to 400 inclusive are
- allowed by the module; if the value set for _KKKK_BBBB_DDDD_TTTT_IIII_MMMM_EEEE is outside this
- range, the module forces it to the nearest limit. (This value is only a
- default; users may change their particular stream to use a different
- value depending on their own preferences, terminal baud-rate, and typing
- speed.)
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- kkkkbbbbdddd((((7777)))) kkkkbbbbdddd((((7777))))
-
-
-
- FFFFIIIILLLLEEEESSSS
- _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_kkkk_bbbb_dddd - directory containing system standard table files.
- _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_kkkk_bbbb_dddd_////_****_...._mmmm_aaaa_pppp - source for some system table files.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- _kkkk_bbbb_dddd_ssss_eeee_tttt(1), _kkkk_bbbb_dddd_cccc_oooo_mmmm_pppp(1M), _kkkk_bbbb_dddd_llll_oooo_aaaa_dddd(1M), _aaaa_llll_pppp(7).
-
- NNNNOOOOTTTTEEEESSSS
- NULL characters may not be used in result or input strings, because they
- are used as string delimiters.
-
- One should be able to obtain information on timeout values of currently
- attached tables, and be able to reset values more easily.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-